<?php

if (!defined('BASEPATH'))
    exit('No direct script access allowed');

class Aluno extends CI_Controller {

    //public $cor_default = "#00959b"; //#006782"; 00959b 389240 b94a48

    public $aluno;

    public function __construct() {
        parent::__construct();
        $this->load->model('usuarios_model', 'users');
        $this->load->model('cadastros_model', 'cadastros');
        $this->load->library('form_validation');
        $this->aluno = $this->session->userdata('aluno');
    }

    public function index() {
        redirect('aluno/inicio');
    }

    public function login() {

        $this->form_validation->set_rules('usuario', 'usuario', 'trim|required|callback__check_login');

        $this->form_validation->set_rules('senha', 'senha', 'trim|required');

        $this->form_validation->set_error_delimiters('<div id="alert_erro" class="mensagemErro">', '</div>');



        if ($this->form_validation->run() == FALSE) {

            $this->load->view('central/login');
        } else {

            redirect('aluno/inicio');
        }
    }

    public function _check_login() {

        $usuario = $this->input->post('usuario');

        $senha = $this->input->post('senha');



        if ($sql = $this->cadastros->get_byLogin($usuario, $senha)) {





            $data = array(
                'aluno' => $sql->CODIGO,
                'clienteLogado' => TRUE
            );



            $this->session->set_userdata($data);

            return TRUE;
        } else {

            $this->form_validation->set_message('_check_login', 'Falha na autenticação, dados incorretos.');

            return FALSE;
        }
    }

    public function inicio() {



        $this->users->clienteLogado();

        $data['pagina'] = "home";

        $data['cadastro'] = $this->cadastros->get_id($this->aluno);

        $data['info_tempo'] = $this->cadastros->getTempo($this->aluno);

        $data['info_projeto'] = $this->cadastros->getProjeto($this->aluno, 1);



        $data['qtdCiclo'] = 0;

        if ($data['info_projeto']) {

            $COD_PROJETO = $data['info_projeto']->COD_PROJETO;

            $data['ciclos'] = $this->cadastros->getCiclosUsuarios($this->aluno, $COD_PROJETO);

            // print_r($data['ciclos']);die();



            if (!is_null($data['ciclos'])) {

                $data['qtdCiclo'] = count($data['ciclos']);
            } else {

                $data['qtdCiclo'] = 0;
            }
        }



        $tempo_total = $this->cadastros->tempoTotal($this->aluno);



        //$data['ciclos_previstos']= number_format($tempo_total / $data['info_tempo']->TEMPO_DISPONIVEL/3600, 2, ',', ' '); //mostrar com duas casas decimais.





        if ($data['info_tempo']) {

            $data['ciclos_previstos'] = ceil($tempo_total / $data['info_tempo']->TEMPO_DISPONIVEL / 3600); //arredonda valor para cima, utilizar preferencialmentes
        }

        //$data['info_projeto']=$this->cadastros->getProjeto($this->aluno);



        $this->load->view('central/painel', $data);
    }

    public function get_logout() {

        /* $this->session->unset_userdata('clienteLogado'); */

        $this->session->sess_destroy();

        redirect($this->index());
    }

    public function ciclo($cod_projeto = NULL) {

        $this->users->clienteLogado();

        $data['pagina'] = "Ciclo";



        if (!is_null($cod_projeto)) {

            $data['info_projeto'] = $this->cadastros->getProjeto($this->aluno, null, $cod_projeto);
        } else {

            $data['info_projeto'] = $this->cadastros->getProjeto($this->aluno, 1);
        }

        $data['labelProjeto'] = 'Projeto não encontrado: ';

        if ($data['info_projeto']) {

            $data['labelProjeto'] = 'Projeto Atual: ';

            if ($data['info_projeto']->STATUS == 0) {

                $data['labelProjeto'] = 'Projeto Antigo: ';
            }



            $COD_PROJETO = $data['info_projeto']->COD_PROJETO;

            $data['ciclos'] = $this->cadastros->getCiclosUsuarios($this->aluno, $COD_PROJETO);
        } else {

            $data['ciclos'] = NULL;
        }











        $data['topicosBanca'] = $this->cadastros->getTopicoBanca($this->aluno);

        foreach ($data['topicosBanca']as $key => $valor) {

            $data['topicosBanca'][$key]['topicos'] = $this->cadastros->getTopicoCiclos($this->aluno, $valor['COD_TOPICO_BANCA'], $valor['CICLO']);
        }

//            echo "<pre>";
//            print_r($data['topicosBanca'] );
//            echo "</pre>";
//            die();



        /* $data['topicos'] = $this->cadastros->getTopicoCiclos($this->aluno);

          /* echo "<pre>";

          print_r( $data['topicos']);echo "</pre>";//die(); */



        $this->load->view('central/ciclo_aluno', $data);
    }

    public function cadastro() {

        $this->load->view('central/cadastro');
    }

    public function hora_estudo() {

        if ($this->session->userdata('clienteLogado')) {

            $data['info_tempo'] = $this->cadastros->getTempo($this->aluno);



            $this->load->view('central/horaEstudo', $data);
        } else {

            redirect('aluno/inicio');
        }
    }

    public function gravarHoraEstudo() {

        $dados = array(
            'COD_ALUNO' => $this->aluno,
            'TEMPO_DISPONIVEL' => $this->input->post('horatext'),
            'VELOCIDADE' => $this->input->post('veltext'),
        );

        $ret = $this->cadastros->novoHoraEstudo($dados);



        redirect('aluno/inicio');
    }

    public function alterarHoraEstudo() {

        $dados = array(
            'TEMPO_DISPONIVEL' => $this->input->post('horatext'),
            'VELOCIDADE' => $this->input->post('veltext'),
        );

        $ret = $this->cadastros->alterarHoraEstudo($this->aluno, $dados);



        redirect('aluno/inicio');
    }

    public function novoAluno() {
        header('Access-Control-Allow-Origin: *');
        //Código alterado por: Lucas Maia - lucas.codemax@gmail.com
        # Consertando Bug de API de cadastro via WebService
        $mensagem = array('mensagem' => array(), 'codigo' => '0');
        $nome = $_GET['nome'];
        $email = $_GET['email'];
        $senha = $_GET['senha'];
        if ($nome == "") {
            $mensagem['codigo'] = $mensagem['codigo'] + 1;
            $mensagem['mensagem'][] = "Campo Nome Vazio";
        }
        if ($email == "") {
            $mensagem['codigo'] = $mensagem['codigo'] + 2;
            $mensagem['mensagem'][] = "Campo Email Vazio";
        }
        if ($senha == "") {
            $mensagem['codigo'] = $mensagem['codigo'] + 4;
            $mensagem['mensagem'][] = "Campo Senha vazio";
        }
        $verificaEmail = $this->cadastros->getUsuarioByEmail($email);

        if ($verificaEmail) {
            $mensagem['codigo'] = 8;
            $mensagem['mensagem'][] = "Email utilizado por outro usuário";
        }

        /*
          0 = sem erros;
          1=nome vazio;
          2=email vazio;
          4=senha vazio;
          3=Nome e email vazio
          5=nome e senha vazio
          6= Email e senha vazio;
          7- Nome, email e senha vazio
          8 - email utilizado
         */

        if ($mensagem['codigo'] == 0) {
            $mensagem['mensagem'][] = "gravado com sucesso";

            $dados = array(
                'NOME_COMPLETO' => $nome,
                'SENHA' => md5(md5($senha)),
                'EMAIL' => $email
            );

            $ret = $this->cadastros->novoAluno($dados);
        }

        echo json_encode($mensagem);
    }

    public function novoAluno1() {





        $this->form_validation->set_rules('nome', 'Nome', 'trim|required');

        $this->form_validation->set_rules('email', 'E-mail', 'trim|required');

        $this->form_validation->set_rules('senha', 'Senha', 'trim|required|min_length[6]');

        /* $this->form_validation->set_rules('CPF', 'CPF', 'trim|required');

          $this->form_validation->set_rules('endereco', 'Endereço', 'trim|required');

          $this->form_validation->set_rules('Cep', 'Cep', 'trim|required');

          $this->form_validation->set_rules('Celular', 'Celular', 'trim|required');

          $this->form_validation->set_rules('termo', 'Termo', 'required');



          $this->form_validation->set_rules('nascimento', 'Data de Nascimento', '');

          $this->form_validation->set_rules('numero', 'Número', '');

          $this->form_validation->set_rules('Cidade', 'Cidade', '');

          $this->form_validation->set_rules('estado', 'Estado', '');

          $this->form_validation->set_rules('residencial', 'Tel. residencial', '');

          $this->form_validation->set_rules('complemento', 'Complemento', ''); */







        if ($this->form_validation->run() == FALSE) {

            //$this->load->view('central/cadastro');

            echo $msg = json_encode(validation_errors());
        } else {

            $dados = array(
                'NOME_COMPLETO' => $this->input->post('nome'),
                'CPF' => $this->input->post('CPF'),
                'EMAIL' => $this->input->post('email'),
                    /* 'DATA_NASCIMENTO'=>$this->input->post('nascimento'),

                      'SENHA'=>md5(md5($this->input->post('senha'))) ,

                      'CELULAR'=>$this->input->post('Celular'),

                      'TELEFONE'=>$this->input->post('residencial'),

                      'CEP'=>$this->input->post('Cep'),

                      'ENDERECO'=>$this->input->post('endereco'),

                      'NUMERO'=>$this->input->post('numero'),

                      'COMPLEMENTO'=>$this->input->post('complemento'),

                      'CIDADE'=>$this->input->post('Cidade'),

                      'UF'=>$this->input->post('estado'),

                      'GRUPO'=>'1',

                      'STATUS'=>'0', */
            );

            $ret = $this->cadastros->novoAluno($dados);



            if (!is_null($ret)) {

                $arr = array('mensagem' => 'ok');

                echo $msg = json_encode($arr);

                /* $dados['codigo']=$ret;

                  $this->enviarEmailCadastro($dados);

                  redirect('aluno/cadastroEfetuado'); */
            } else {

                $arr = array('mensagem' => 'erro');

                echo $msg = json_encode($arr);
            }
        }
    }

    public function cadastroEfetuado() {

        $this->load->view('central/cadastroEfetuado');
    }

    public function enviarEmailCadastro($dados) {



//        $dados['EMAIL']='ivan.rufino.m@gmail.com';
//        $dados['NOME_COMPLETO']='Ivan Rufino Martins';
//            $dados['codigo']='1';

        $config['protocol'] = 'mail';

//            $config['mailpath'] = '/usr/sbin/sendmail';





        $config['charset'] = 'utf-8';

        $config['mailtype'] = 'html';

        $config['wordwrap'] = TRUE;



        $this->email->initialize($config);

        $this->email->from('noreply@cursultoria.com.br', 'Cursultoria');

        $this->email->to($dados['EMAIL']);

        //$this->email->to("lucas.codemax@gmail.com");
        //$this->email->Bcc($userKey->RESPONSAVEL);

        $this->email->subject("CURSULTORIA - ATIVAÇÃO DE CONTA");



//            $mensagem = "<b>Nome:</b>" . $this->input->post('nome') . "<br />";
//            $mensagem .= "<b>Email:</b>" . $this->input->post('email') . "<br />";
//            $mensagem .= "<b>Telefone:</b>" . $this->input->post('telefone') . "<br />";
//            $mensagem .= "<b>Assunto:</b>" . $this->input->post('assunto') . "<br />";
//            $mensagem .= "<b>Mensagem:</b>" . $this->input->post('mensagem') . "<br />";



        $mensagem = $this->load->view('email/ativacaoCadastro', $dados, true);



        $this->email->message($mensagem);

        if ($this->email->send()) {

            echo $this->email->print_debugger();

            die('enviado');
        } else {

            die('não enviado');
        }
    }

    public function ativarConta($codigo) {



        $dados['STATUS'] = '1';

        $ret = $this->cadastros->alterarAluno($codigo, $dados);



        redirect('aluno/get_logout');
    }

    public function resetSenha() {

        //  FALTA TERMINAR

        echo "chegou aqui";
    }

    public function foto() {
        ?>

        <?php echo form_open_multipart('aluno/do_upload'); ?>

        <input type="file" name="userfile" size="20" />

        <br /><br />

        <input type="submit" value="upload" />



        </form>

    <?php

    }

    public function do_upload() {

        $config['upload_path'] = './uploads/';

        $config['allowed_types'] = 'gif|jpg|png';

        $config['max_size'] = '100';

        $config['max_width'] = '1024';

        $config['max_height'] = '768';



        $this->load->library('upload', $config);



        if (!$this->upload->do_upload()) {

            $error = array('error' => $this->upload->display_errors());



            $this->load->view('upload_form', $error);
        } else {

            $data = array('upload_data' => $this->upload->data());



            $this->load->view('upload_success', $data);
        }
    }

    public function projetosAntigos() {

        $this->users->clienteLogado();

        $data['pagina'] = "home";

        $data['cadastro'] = $this->cadastros->get_id($this->aluno);

        $data['info_tempo'] = $this->cadastros->getTempo($this->aluno);

        $projetos = $this->cadastros->getProjeto($this->aluno, NULL);

        $proj = $this->cadastros->getProjeto($this->aluno, 1);



        if (count($projetos) == 1 && $projetos) {

            $data['projetos'][] = (array) $projetos;
        } else {

            $data['projetos'] = $projetos;
        }

        $data['qtdCiclo'] = 0;

        if ($proj) {
;

            $COD_PROJETO = $proj->COD_PROJETO;



            $data['ciclos'] = $this->cadastros->getCiclosUsuarios($this->aluno, $COD_PROJETO);



            if (!is_null($data['ciclos'])) {

                $data['qtdCiclo'] = count($data['ciclos']);
            } else {

                $data['qtdCiclo'] = 0;
            }
        }

        $tempo_total = $this->cadastros->tempoTotal($this->aluno);



        //$data['ciclos_previstos']= number_format($tempo_total / $data['info_tempo']->TEMPO_DISPONIVEL/3600, 2, ',', ' '); //mostrar com duas casas decimais.

        if ($data['info_tempo']) {

            $data['ciclos_previstos'] = ceil($tempo_total / $data['info_tempo']->TEMPO_DISPONIVEL / 3600); //arredonda valor para cima, utilizar preferencialmentes
        }



        $this->load->view('central/projetosAntigos', $data);
    }

    public function mapa() {

        $this->users->clienteLogado();

        $projetos = $this->cadastros->getProjeto($this->aluno, NULL);





        if (count($projetos) == 1 && $projetos) {

            $data['projetos'][] = (array) $projetos;
        } else {

            $data['projetos'] = $projetos;
        }



        //echo "<pre>";print_r($data['projetos']);echo "</pre>";die();

        $this->load->view('central/mapa-gerencial', $data);
    }

    public function getMapa($idProjeto) {

        $dados['ciclos'] = $this->cadastros->getCiclosUsuarios($this->aluno, $idProjeto);

        $dados['disciplinas'] = $this->cadastros->getDisciplinabyUsuario($this->aluno);



        foreach ($dados['disciplinas'] as $disciplina) {

            $dados['total'][$disciplina['CODIGO']] = $this->cadastros->getTotalDisciplinabyUsuario($this->aluno, $disciplina['CODIGO']);

            foreach ($dados['ciclos'] as $ciclo) {

                $dados['subTotal'][$disciplina['CODIGO']][$ciclo->CICLO] = $this->cadastros->getSubTotalDisciplinabyUsuario($this->aluno, $disciplina['CODIGO'], $ciclo->CICLO);
            }
        }



        // echo "<pre>";            print_r($dados['subTotal']); echo "</pre>"; die();

        echo $this->load->view('central/mapaAjax', $dados, true);
    }

    public function pagina404() {

        echo "Erro 404 <br> pagina não encontrada";
    }

    public function logout() {

        $data = array(
            'usuario' => '',
            'logged' => FALSE
        );

        $this->session->unset_userdata($data);

        $this->session->sess_destroy();

        redirect('aluno');

        //  echo site_url()."painel/login";
    }

    public function teste() {

        $url = "http://cursultoria.com.br/novo/aluno/novoaluno.html?nome=Jose1&email=jose1@gmail.com&senha=123456";

        $arquivo = file_get_contents($url);

        print_r($arquivo);
    }

    public function teste2() {



        //set POST variables

        $url = 'http://cursultoria.com.br/novo/aluno/novoaluno.html?nome=Jose1&email=jose1@gmail.com&senha=123456';

        $fields_string = "";

        $fields = array(
            'nome' => urlencode('ivan Rufino'),
            'email' => urlencode('ivan.rufino@gmail'),
            'senha' => urlencode('123456'),
        );





        $ch = curl_init();



        //set the url, number of POST vars, POST data

        curl_setopt($ch, CURLOPT_URL, $url);

        curl_setopt($ch, CURLOPT_POST, false);

        curl_setopt($ch, CURLOPT_POSTFIELDS, NULL);



        //execute post

        $result = curl_exec($ch);

        print_r($result);

        //close connection

        curl_close($ch);
    }

}
